Transaction Polymorphism in Java
نویسندگان
چکیده
Concurrent implementations of abstract types usually rely on lock-free primitives or locks and are highly tuned to support a finite set of efficient operations. However, it is very hard to extend such types for specific needs by adding new operations. The synchronization based on memory transactions, which is generally less efficient than based on lock-free primitives or locks, has been proposed in part to address this issue by ensuring that any set of transactional operations can run concurrently. This paper introduces transaction polymorphism, a synchronization technique that consists of providing more control to the programmer than traditional (monomorphic) transactions to achieve comparable performance to generic lock-based and lock-free solutions. We show in this paper that, maybe unsurprisingly, monomorphic transactions cannot reach the level of concurrency obtained with locks. As a drawback of sharing the same semantics that needs to be strong enough for various operations, monomorphic transactions seriously underutilize the concurrency potential of such operations. We describe a Java polymorphic transactional memory that includes three distinct transaction types, which we compare against four existing (monomorphic) STMs, as well as against existing lock-based and lock-free synchronization on a collection micro-benchmark and on the STMBench7 macrobenchmark. Our results show that polymorphism can be at least 2.4 times faster than any of these alternatives on 64 threads.
منابع مشابه
Formal Reasoning About Non-atomic Java Card Methods in Dynamic Logic
We present an extension to JAVA CARD Dynamic Logic, a program logic for reasoning about JAVA CARD programs, to handle JAVA CARD’s so-called non-atomic methods. Although JAVA CARD DL already supports the atomic transaction mechanism of JAVA CARD, non-atomic methods present an additional challenge: state updates triggered by such a non-atomic method are not subjected to any transaction that may p...
متن کاملA Component-Based Approach to Compose Transaction Standards
This paper tackles the problem of composition of transaction services, which are governed by various transaction standards. Among others, we can cite the Object Transaction Service, Java Transaction Service, or Web Services Atomic Transaction. However, the Web Services Atomic Transaction standard encloses legacy transaction standards to support the Web Services application platform. This encaps...
متن کاملTransactions in Java Card
A smart card runtime environment must provide the proper transaction support for the reliable update of data, especially on multiapplication cards like the Java Card. The transaction mechanism must meet the demands by the applications and the system itself within the minimal resources offered by current smart card hardware. This paper presents the current transaction model implied by the Java C...
متن کاملReflective Java and A Reflective Component-Based Transaction Architecture
In this paper, we first give a brief introduction to our Reflective Java technology. Then we describe our work on using Reflective Java to implement a flexible transaction architecture that meets the needs of Internet applications. Finally, we report some of our experience, particularly our two-layer approach on constructing metaobjects.
متن کاملInterconnection of Distributed Components:
From design and manufacturing to electronic commerce, coordinating business activities in engineering applications requires accessing data and software from distributed sources. The Common Object Request Broker Architecture (CORBA) of the Object Management Group emerged in the 1990’s as a standard for access to distributed software components. Since that time, the standard has matured significa...
متن کامل